package com.acmedcare.framework.exchange.center.core;

import com.acmedcare.framework.exchange.center.core.adapter.AdapterMetadata;
import com.acmedcare.framework.exchange.center.core.agent.AgentMetadata;
import com.acmedcare.framework.exchange.center.core.consumer.ConsumerMetadata;
import com.acmedcare.framework.exchange.center.core.metadata.IDataApplication;
import com.acmedcare.framework.exchange.center.entity.bean.Plugin;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import java.util.concurrent.ConcurrentHashMap;
import lombok.Data;
import xyz.vopen.cartier.classpathscanner.scanner.ScanResult;

@Data
public class PluginMetadata extends Plugin {

  @ApiModelProperty("适配器元数据")
  private ConcurrentHashMap<String, AdapterMetadata> adapterMetadata;

  @JsonIgnore
  private ClassLoader classLoader;

  @ApiModelProperty("应用程序实例")
  private IDataApplication applicationInstance;

  @ApiModelProperty("代理集合")
  private ConcurrentHashMap<String, AgentMetadata> agentMap;

  @ApiModelProperty("消费器集合")
  private ConcurrentHashMap<String, ConsumerMetadata> consumerMap;

  @JsonIgnore
  private ScanResult scanResult;
}